package analisis.matrizContingencia;

import java.util.List;

/**
 * @file FalsePositiveRate.java
 * @author Juan Humanes Ferrer
 * @date 14-Marzo-2014
 *
 */
public final class FalsePositiveRate implements IMedida {

    private double falsePositiveRate;//valor en porcentaje

    public FalsePositiveRate() {
        setFalsePositiveRate(0.0);//valor en porcentaje
    }

    /**
     * Método que retorna el falsePositiveRate
     *
     * @return falsePositiveRate
     */
    public double getFalsePositiveRate() {
        return falsePositiveRate;
    }

    /**
     * Métodod que modifica el valor de falsePositiveRate
     *
     * @param falsePositiveRate
     */
    public void setFalsePositiveRate(double falsePositiveRate) {
        this.falsePositiveRate = falsePositiveRate;
    }

    /**
     * Método que calcula la Specificity
     *
     * @param tp
     * @param tn
     * @param fp
     * @param fn
     * @param valoresMedidas
     */
    @Override
    public void calculaMedida(double tp, double tn, double fp, double fn, List<IMedida> valoresMedidas) {
        double result = Double.POSITIVE_INFINITY;

        if (valoresMedidas.get(6).verValor() != Double.POSITIVE_INFINITY) {
            result = 1 - (valoresMedidas.get(6).verValor() / 100);//En la posicion 6 esta el valor de Specificity
            result *= 100;
        }
        setFalsePositiveRate(result);
    }

    @Override
    public Double verValor() {
        return getFalsePositiveRate();
    }
}
